package br.com.evl.tecinfo.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author alysson
 */
public abstract class Banco<T> {

    public Connection conexao;
    public Statement st;
    public ResultSet consulta;
    public String tabela;

    public abstract void inserir(T tipo);

    public abstract void remover(T tipo);

    public abstract void setTable(String tabela);

    public void conectarAoBD() {

        try {
            conexao = DriverManager.getConnection("jdbc:mysql://localhost/HORA", "root", "646890");
            st = conexao.createStatement();

            setTable(tabela);
            criarConsulta();

        } catch (SQLException ex) {
            System.out.println("Não foi possível conectar");
        }
    }

    public void criarConsulta() {

        try {
            String a = "SELECT * FROM " + tabela;

            consulta = st.executeQuery(a);

        } catch (SQLException ex) {
            System.out.println("Ocorreu um erro ao consultar");
        }
    }

    public void setValores(String[] valores) {

        String inserir = "INSERT INTO " + tabela + " VALUES('";

        try {

            for (int i = 0; i < valores.length; i++) {

                inserir += i == valores.length - 1 ? valores[i] + "')" : valores[i] + "', '";

            }
            
            st.executeUpdate(inserir);            

            System.out.println("Valores inseridos com sucesso");

        } catch (SQLException ex) {
            System.out.println("erro ao inserir");
        }
    }

    public void fecharConexao() {
        try {

            st.close();

        } catch (SQLException ex) {
            System.out.println("Conexao fechada");
        }
    }

}
